class parent:
    parentAttr = 100
    #  __name__ == "__main__" 判断的时直接执行还是模块化执行
    # def if __name__ == "__main__":
    # pass
    # 在init的方法中如果构造该对象的时候可以设置初始化参数
    # 如果不需要初始化,也需要些 init方法同时需要带入对象本身的参数 一般默认使用的是self   
    def __init__(self,parentAttr):
        parent.parentAttr = parentAttr
        print('调用父类的构造方法')
    
    def parentMethod(self):
        print('调用父类的方法')
    
    def setAttr(self,attr):
        parent.parentAttr = attr
    
    def getAttr(self):
        print ("父类的属性=",parent.parentAttr)


# p = parent();
# p.parentMethod();
# p.setAttr(300)
# p.getAttr();

class Child(parent):
    def __init__(self):
        print('调用子类的构造方法')
    
    def ChildMethod(self):
        print('调用子类的构造方法')

p = parent(20)
p.getAttr()